home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS069.dsk / GOLD MINE.bas < prev    next >
BASIC Source File  |  2012-02-16  |  7KB  |  214 lines

  1. 0  TEXT : HOME 
  2. 1 C = 1000000
  3. 2 B = 331.6
  4. 3 M$ = "DAVY"
  5. 4 R$ = "SEPT. 20, 1979"
  6. 10  VTAB 10
  7. 20  HTAB 10
  8. 30  PRINT "G O L D   M I N E"
  9. 35  HTAB 10
  10. 40  PRINT "- - - -   - - - -"
  11. 42  PRINT 
  12. 45  HTAB 10
  13. 50  PRINT "BY ROYCE A. JONES"
  14. 55  FOR I = 1 TO 1000: NEXT I
  15. 60  DIM X(20,30)
  16. 70  HOME 
  17. 75  VTAB 11
  18. 80  PRINT "I'VE BEEN A MINER FOR A HEART OF GOLD,"
  19. 85  PRINT "AND I'M GETTIN' OLD."
  20. 90  PRINT : PRINT "---NEIL YOUNG---"
  21. 95  FOR I = 1 TO 2500: NEXT I
  22. 100  HOME : VTAB 12
  23. 105  INPUT "DO YOU NEED INSTRUCTIONS? ";K$
  24. 110  IF  LEFT$(K$,1) = "N"  THEN 400
  25. 120  HOME : VTAB 7
  26. 130  PRINT "   THROUGHOUT MANKIND'S HISTORY GOLD"
  27. 140  PRINT "HAS BEEN A MAGIC METAL.  GOLD HAS BEEN"
  28. 150  PRINT "PRIZED BY NEARLY EVERY CIVILIZATION."
  29. 160  PRINT : PRINT "   NOW IS YOUR CHANCE TO HAVE YOUR OWN"
  30. 170  PRINT "GOLD MINE. YOU HAVE ONE YEAR TO MINE ALL";
  31. 180  PRINT "THE GOLD YOU CAN. THE MOST YOUR MINE IS"
  32. 190  PRINT "WORTH IS ONE MILLION DOLLARS! BUT YOU"
  33. 200  PRINT "MUST MINE IT. YOUR MINE CONTAINS 100"
  34. 210  PRINT "VEINS OF GOLD. EACH VEIN IS WORTH"
  35. 220  PRINT "$10,000."
  36. 222  VTAB 24: PRINT " << PRESS THE SPACE BAR TO CONTINUE >>";
  37. 224  IF  PEEK( -16384) <127  THEN 224
  38. 226  POKE  -16368,0
  39. 228  HOME : VTAB 6
  40. 230  PRINT : PRINT "   TO START WITH YOUR MINE HAS JUST ONE"
  41. 240  PRINT "VERTICAL SHAFT. YOU MUST ENLARGE ON THIS";
  42. 250  PRINT "BY MINING. IT TAKES ONE DAY TO MINE ONE"
  43. 260  PRINT "POSITION, WHETHER IT CONTAINS ORE OR"
  44. 270  PRINT "NOT. IF THE POSITIONS HAVE ALREADY BEEN"
  45. 280  PRINT "MINED YOU CAN MOVE FIVE POSITIONS IN ONE";
  46. 290  PRINT "DAY. YOU CAN MOVE IN FOUR DIRECTIONS:"
  47. 300  PRINT "UP, DOWN, LEFT, AND RIGHT. TO MOVE TYPE"
  48. 310  PRINT "THE FIRST LETTER OF THE DIRECTION YOU"
  49. 315  PRINT "WISH TO MOVE AND THEN THE NUMBER OF"
  50. 320  PRINT "POSITIONS TO MOVE. FOR EXAMPLE, TWO"
  51. 325  PRINT "POSITIONS UP WOULD BE U2, 3 POSITIONS"
  52. 330  PRINT "RIGHT WOULD BE R3, AND SO ON."
  53. 332  VTAB 24: PRINT " << PRESS THE SPACE BAR TO CONTINUE >>";
  54. 333  IF  PEEK( -16384) <127  THEN 333
  55. 334  POKE  -16368,0: HOME : VTAB 6
  56. 335  PRINT : PRINT "   YOU CAN MOVE AS MANY POSITIONS AS YOU";
  57. 340  PRINT "WANT IN ONE DIRECTION EXCEPT THAT YOU"
  58. 345  PRINT "CANNOT GO PAST THE BORDER OF THE MINE."
  59. 350  PRINT "IF YOU TRY TO YOU WILL BE STOPPED AT THE";
  60. 355  PRINT "BORDER. YOU CAN THEN MOVE FROM THERE ON"
  61. 360  PRINT "YOUR NEXT TURN."
  62. 365  PRINT : PRINT "   EACH MOVE TAKES ONE DAY. ON THE MAP"
  63. 370  PRINT "EACH LEVEL IN THE MINE IS A DIFFERENT"
  64. 375  PRINT "LETTER, (A-L, AND N-U). YOU ARE THE"
  65. 380  PRINT "MINER AND ARE REPRESENTED BY THE LETTER"
  66. 382  PRINT "M. ALL GOLD VEINS ARE SHOWN AS '*'."
  67. 384  PRINT "YOU BEGIN AT THE TOP OF THE SHAFT."
  68. 386  VTAB 24: PRINT " << PRESS THE SPACE BAR TO CONTINUE >>";
  69. 388  IF  PEEK( -16384) <127  THEN 388
  70. 390  POKE  -16368,0
  71. 392  HOME 
  72. 394  VTAB 12: PRINT "GOOD LUCK AND GOOD MINING"
  73. 400  TEXT : FOR AA = 1 TO 20: FOR BB = 1 TO 30:X(AA,BB) = 0: NEXT BB,AA
  74. 410 D = 0:M = 0
  75. 420 K$ = "UDLR"
  76. 430 L$ = "ABCDEFGHIJKLNOPQRSTU"
  77. 440  FOR T = 1 TO 20
  78. 450 :::X(T,16) = 1
  79. 460  NEXT T
  80. 470 :::X(1,16) = 3
  81. 480 :::X1 = 16
  82. 490 :::Y1 = 1
  83. 500  FOR T = 1 TO 100
  84. 510 :::Y =  INT( RND(1) *20 +1)
  85. 520 :::X =  INT( RND(1) *30 +1)
  86. 530 : IF X = 16  THEN 520
  87. 540 :: IF X(Y,X) >0  THEN 510
  88. 550 :::X(Y,X) = 2
  89. 560  NEXT T
  90. 580  POKE 34,1
  91. 590  HOME 
  92. 600  FOR T = 1 TO 20
  93. 610  FOR T1 = 1 TO 30
  94. 620  ON X(T,T1) +1 GOTO 680,630,650,670
  95. 630  HTAB T1: PRINT  MID$ (L$,T,1);
  96. 640  GOTO 680
  97. 650  HTAB T1: PRINT "*";
  98. 660  GOTO 680
  99. 670  HTAB T1: INVERSE : PRINT "M";: NORMAL 
  100. 680  NEXT T1
  101. 690  PRINT : NEXT T
  102. 700  GOSUB 1580
  103. 710  POKE 34,21: HOME 
  104. 720  PRINT "    MOVE:  ";
  105. 730  INPUT A$
  106. 760  FOR T1 = 1 TO 4
  107. 770  IF  MID$ (K$,T1,1) =  LEFT$(A$,1)  THEN 810
  108. 780  NEXT T1
  109. 782  HOME : PRINT "<CTRL-G>TYPE D, L, R, OR U FOLLOWED BY A NUMBER"
  110. 784  FOR I = 1 TO 1500: NEXT I
  111. 786  GOTO 700
  112. 790  HOME : PRINT "<CTRL-G>BOUNDRY REACHED"
  113. 795  FOR I = 1 TO 1000: NEXT I
  114. 800  GOTO 700
  115. 810 N =  VAL( MID$ (A$,2,3))
  116. 820 X9 = X1
  117. 830 Y9 = Y1
  118. 840 Z$ =  MID$ (L$,Y9,1)
  119. 845  FOR X = 1 TO N
  120. 850  ON T1 GOTO 860,900,960,1020
  121. 860 Y1 = Y1 -1
  122. 865  IF Y1 >0  THEN 880
  123. 870 Y1 = Y1 +1
  124. 875  GOTO 790
  125. 880 X(Y1 +1,X1) = 1
  126. 890  GOTO 1070
  127. 900 Y1 = Y1 +1
  128. 910  IF Y1 <21  THEN 940
  129. 920 Y1 = Y1 -1
  130. 930  GOTO 790
  131. 940 X(Y1 -1,X1) = 1
  132. 950  GOTO 1070
  133. 960 X1 = X1 -1
  134. 970  IF X1 >0  THEN 1000
  135. 980 X1 = X1 +1
  136. 990  GOTO 790
  137. 1000 X(Y1,X1 +1) = 1
  138. 1010  GOTO 1070
  139. 1020 X1 = X1 +1
  140. 1030  IF X1 <31  THEN 1060
  141. 1040 X1 = X1 -1
  142. 1050  GOTO 790
  143. 1060 X(Y1,X1 -1) = 1
  144. 1070  IF X(Y1,X1) = 1  THEN 1140
  145. 1080 D = D +1
  146. 1085 D =  INT(D *10 +.5)/10
  147. 1090  IF D >365.24  THEN 1210
  148. 1100  IF X(Y1,X1) = 0  THEN 1160
  149. 1110 M = M +10000
  150. 1120  IF M = 1000000  THEN 1450
  151. 1130  GOTO 1160
  152. 1140 D = D +.2
  153. 1145 D =  INT(D *10 +.5)/10
  154. 1150  IF D >365.24  THEN 1210
  155. 1160 X(Y1,X1) = 3
  156. 1165  VTAB Y9 +1: HTAB X9: PRINT Z$
  157. 1170 X9 = X1
  158. 1175 Y9 = Y1
  159. 1180 Z$ =  MID$ (L$,Y9,1)
  160. 1185  VTAB Y9 +1: HTAB X9: INVERSE : PRINT "M": NORMAL 
  161. 1190  GOSUB 1580
  162. 1195  NEXT X
  163. 1200 D = D +1
  164. 1202 D =  INT(D *10 +.5)/10
  165. 1205  IF D <365.24  THEN  GOTO 700
  166. 1210  GOSUB 1580
  167. 1215  HOME 
  168. 1220  PRINT "<CTRL-G>YOUR YEAR IS UP AND YOU HAVE            MINED $";M;" OF GOLD."
  169. 1225  FOR I = 1 TO 2000: NEXT I
  170. 1228  TEXT : HOME : VTAB 8
  171. 1230  REM  DISK COMMAND TO OPEN "GOLD.DAT" AS FILE
  172. 1240  GOSUB 1530
  173. 1250  IF C >M  THEN 1400
  174. 1260  IF C = M  THEN 1380
  175. 1270 D = 365.24
  176. 1290  REM  ROUTINE TO READ CLOCK AND DATE
  177. 1300  INPUT "HEY OLD TIMER,<CTRL-A><CTRL-A> WHAT'S YOUR NAME";N$
  178. 1305  PRINT : PRINT : PRINT 
  179. 1310  REM  DISK COMMAND TO OPEN "GOLD.DAT" AS FILE #1
  180. 1320  REM  WRITE N$
  181. 1330  REM  WRITE D
  182. 1340  REM  WRITE M
  183. 1350  REM  WRITE T$
  184. 1360  REM  CLOSE 1
  185. 1370  PRINT "WELL ";N$;" YOU JUST BROKE";
  186. 1375  GOTO 1410
  187. 1380  PRINT "CONGRATULATIONS!!! YOU TIED";
  188. 1390  GOTO 1410
  189. 1400  PRINT "YOU DIDN'T BREAK";
  190. 1410  PRINT " THE RECORD"
  191. 1412  PRINT 
  192. 1415  PRINT "OF $";C;" MINED IN ";B;" DAYS"
  193. 1418  PRINT 
  194. 1420  PRINT "BY ";M$;" ON ";R$
  195. 1425  FOR I = 1 TO 1500: NEXT I
  196. 1430  GOTO 1600
  197. 1450  FOR I = 1 TO 1000: NEXT I: TEXT : HOME 
  198. 1455  PRINT "<CTRL-G>CONGRATULATIONS !!<CTRL-G> YOU HAVE MINED A     MILLION DOLLARS IN ONLY ";D;" DAYS!<CTRL-G>"
  199. 1458  PRINT : PRINT 
  200. 1460  REM  OPEN DISK FILE #2
  201. 1470  GOSUB 1530
  202. 1480  IF B <D  THEN 1400
  203. 1490  IF B = D  THEN 1380
  204. 1500  GOTO 1290
  205. 1530  REM  ROUTINE TO INPUT M$,B$,C$,R$,B,AND C TO FILE 2 AND THEN CLOSE IT
  206. 1570  RETURN 
  207. 1580  VTAB 1: HTAB 4: PRINT "DAY ";D;"   ";: HTAB 20: PRINT "PROFIT IS ";M;"   "
  208. 1590  RETURN 
  209. 1600  FOR I = 1 TO 2000: NEXT I
  210. 1620  PRINT : PRINT : PRINT 
  211. 1630  INPUT "WOULD YOU LIKE TO PLAY AGAIN ";A$
  212. 1640  IF  LEFT$(A$,1) < >"N"  THEN  RUN 
  213. 1650  HOME : VTAB 12
  214. 1660  PRINT "WELL THEN, ITS BEEN FUN ";N$